Concurrent transcoding of streaming video for immediate download

ABSTRACT

Aspects relate to transcoding a video at substantially the same time as the video is streamed so that upon completion of streaming, the transcoded video is available for immediate download. The transcoding can be performed on a client device or on a host device. Portions of the video can be tagged such that only the tagged portions are transcoded and made available for downloading. The tagged portions can be merged into a single file. Notification of the availability of the video can be broadcast. The broadcast can be controlled so as to be a public notification or a selective notification that is broadcast to a specified set or sets of individuals. Further, video chats can be recorded and compared so that a downloaded version of the video chat is an enhanced version of the information rendered on a user device.

TECHNICAL FIELD

This disclosure relates to concurrent transcoding of streaming video sothat the video is available for immediate download.

BACKGROUND

Many users of mobile devices record video and related audio content tomemorialize a variety of events in order for those events to beexperienced by others that were not able to be physically present at theevent.

For conventional recording of streaming video, upon receiving a requestto record the streaming video, the video is recorded and then transcodedto convert the video into a format that can be supported by the device.If the video is to be published, the video is transcoded a second timein order for the video to be published in a format acceptable fordownload. For example, when a remote host session is accessed and thenrecorded, an encoder allows for viewing of the video on the user device.If the session is to be published, the session is sent locally to diskand then needs to be uploaded for publishing. The process of transcodingthe video twice needlessly consumes resources, such as processing powerand system memory, and can also frustrate the user because of the amountof time it takes to publish the video.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding of some aspects of the disclosure. Thissummary is not an extensive overview of the disclosure. It is intendedto neither identify key or critical elements of the disclosure nordelineate any scope of particular embodiments of the disclosure, or anyscope of the claims. Its sole purpose is to present some concepts of thedisclosure in a simplified form as a prelude to the more detaileddescription that is presented later.

In accordance with one or more embodiments and corresponding disclosure,various non-limiting aspects are described in connection with performingvideo streaming and transcoding in parallel or at substantially the sametime. Transcoding the video while the video is being streamed allows thevideo to be available for immediate download to one or more targetdevices.

An embodiment relates to a device that includes a memory and aprocessor. The memory stores computer executable components and theprocessor executes the computer executable components stored in thememory. The computer executable components include a communicationcomponent that receives a video record request and a capture componentthat records a video of an event indicated by the video record request.The computer executable components also include a transfer componentthat streams the video to a host device as the video is being recordedand a conversion component that transcodes at least a portion of thevideo while the video is being streamed to the host device.

Another embodiment relates to a device that includes a memory and aprocessor. The memory stores computer executable components that areexecuted by the processor. The computer executable components include areceiver component that receives, from a target device, a request for avideo and an authorization component that allows access to the videobased on an identification of the target device. The video can be storedin the memory. The computer executable components also include acommunication component that streams the video to the target device anda transformation component that transcodes the video while the video isstreamed to the target device.

A further embodiment relates to a method that includes receiving, from atarget device, a request for a video. The method also includes allowingaccess to the video based on an authorization level associated with thetarget device. Further, the method includes streaming the video to thetarget device and transcoding the video while the video is beingstreamed to the target device.

Another aspect relates to a method that includes receiving by aprocessor of a first device a video record request and recording a videoon the first device in response to the video record request. The methodalso includes streaming to a host device at least a portion of the videoas the video is being recorded and transcoding at least a portion of thevideo while the video is being streamed to the host device.

The following description and the annexed drawings set forth certainillustrative aspects of the disclosure. These aspects are indicative,however, of but a few of the various ways in which the principles of thedisclosure may be employed. Other advantages and novel features of thedisclosure will become apparent from the following detailed descriptionof the disclosure when considered in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Various non-limiting implementations are further described withreference to the accompanying drawings in which:

FIG. 1 illustrates an example non-limiting system that providesstreaming video in a format that is available for immediate download,according to an embodiment;

FIG. 2 illustrates an example non-limiting system that provides one ormore portions of a video that are available for immediate download,according to an embodiment;

FIG. 3 illustrates an example non-limiting system that can convey avideo in a format that is ready for immediate download at a targetdevice, according to an embodiment;

FIG. 4 illustrates a system that broadcasts video availabilityinformation, according to an embodiment;

FIG. 5 illustrates an example, non-limiting system for enhancing a videothat is available for immediate download, according to an embodiment;

FIG. 6 illustrates an example, non-limiting system that providesalternative views of a video in a format that is ready for immediatedownload, according to an embodiment;

FIG. 7 illustrates an example non-limiting method for providingconcurrent transcoding of a streaming video, according to an embodiment;

FIG. 8 illustrates another example, non-limiting method that can conveya video in a format that is ready for immediate download at a targetdevice, according to an embodiment;

FIG. 9 illustrates a block diagram representing an exemplarynon-limiting networked environment in which various embodiments can beimplemented; and

FIG. 10 illustrates a block diagram representing an exemplarynon-limiting computing system or operating environment in which variousembodiments may be implemented.

DETAILED DESCRIPTION

Various embodiments or features of the subject disclosure are describedwith reference to the drawings, wherein like reference numerals are usedto refer to like elements throughout. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the subject disclosure. Itmay be evident, however, that the disclosed subject matter can bepracticed without these specific details, or with other methods,components, materials, and so forth. In other instances, well-knownstructures and components are shown in block diagram form in order tofacilitate describing the subject disclosure.

By way of introduction, the subject matter disclosed herein relates tostreaming a video, based upon a request for the video. At substantiallythe same time as the video is being streamed, the video is also beingtranscoded. The almost simultaneous streaming and transcoding of thevideo allows for the video to be available for immediate download.

One non-limiting implementation relates to a device that includes amemory that stores computer executable components and a processor thatexecutes the computer executable components stored in the memory. Thecomputer executable components include a communication component thatreceives a video record request and a capture component that records avideo of an event indicated by the video record request. The computerexecutable components also include a transfer component that streams thevideo to a host device as the device is being recorded and a conversioncomponent that transcodes at least a portion of the video while thevideo is being streamed to the host device.

The device, according to an embodiment, also includes an annotationcomponent that bookmarks one or more portions of the video. The bookmarkidentifies the one or more portions of the video to be transcoded.Further to this embodiment, the conversion component transcodes only theone or more portions of the video that are bookmarked. The system canalso include a merge component that aggregates the one or more portionsof the video into a single file. Additionally or alternatively, thesystem can include an indicator module that distinguishes a firstportion of the one or more portions from a second portion of the one ormore portions. Further to this embodiment, the first portion and thesecond portion can be contiguous portions of the video or noncontiguousportions of the video.

In an aspect, the event indicated by the video record request is anactive video chat session running on the device. In another aspect, theevent indicated by the video record request is an active remote hostingsession open between the device and another device.

Another implementation relates to a device that includes a memory and aprocessor. The memory stores computer executable components that areexecuted by the processor. The computer executable components include areceiver component that receives, from a target device, a request for avideo. The video can be stored in the memory. The computer executablecomponents also include an authorization component that allows access tothe video based on an identification of the target device. Further, thecomputer executable components include a communication component thatstreams the video to the target device and a transformation componentthat transcodes the video while the video is streamed to the targetdevice.

The device, according to an embodiment, further includes a broadcastcomponent that notifies availability of downloadable content to a set oftarget devices. The notification can be a general public notificationand the set of target devices can represents all devices capable ofreceiving the notification. Alternatively, the notification can be aselective notification, wherein the set of target devices are selectedas a function of at least one configurable parameter.

In an implementation, the receiver component receives a first video froma first user device and a second video from a second user device,wherein the first video and the second video represent alternative viewsof a single event, e.g., a video chat. Further to this embodiment, thedevice includes a delta component that identifies differences betweenthe first video and the second video and an enhancement component thatcreates a third video as a result of the identified differences. Thethird video is an enhanced version of a combination of the first videoand the second video. Further to this aspect, the enhancement componentcombines frames of the first video with an audio segment of the secondvideo. The device, according to some aspects, further includes anenhancement component that combines the first video with the secondvideo to create a third video and an output component that outputs thethird video to the target device in response to the request. The device,according to some aspects, includes an output component that outputs thealternative views in a split-screen format in response to the requestfor the video. Further to this embodiment, the device can include asynchronization component that harmonizes the alternative views.

Another implementation relates to a method that includes receiving, froma target device, a request for a video. The method also includesallowing access to the video based on an authorization level associatedwith the target device. Further, the method includes streaming the videoto the target device and transcoding the video while the video isstreamed to the target device.

According to an implementation, the method can include notification(e.g., push notification) of an availability of downloadable content toa set of devices that includes the target device. Further to thisembodiment, the notification can include sending a general publicnotification to all available devices, including the target device.Alternatively, the notification can include sending a selectivenotification, wherein the set of target devices are selected as afunction of at least one configurable parameter.

The method, according to some embodiments, includes receiving a firstvideo from a first user device and receiving a second video from asecond user device. The first video and the second video representalternative views of a single event. The method also includesidentifying differences between the first video and the second video andcreating a third video as a result of the identified differences,wherein the third video is an enhanced version of a combination of thefirst video and the second video.

In another implementation, the method includes receiving a first videofrom a first user device and receiving a second video from a second userdevice. The first video and the second video represent alternative viewsof a single event. Further to this embodiment, the method can includeoutputting the alternative views for rendering on a display of thetarget device, wherein the alternative views are rendered in asplit-screen format.

A further implementation relates to a method that includes receiving bya processor of a first device a video record request and recording avideo on the first device in response to the video record request. Themethod also includes streaming to a host device at least a portion ofthe video as the video is being recorded and transcoding at least aportion of the video while the video is being streamed to the hostdevice.

In an implementation, recording a video on the device in response to thevideo record request includes recording a video of an active remotehosting session between the first device and a second device. In anotherimplementation, recording the video on the device in response to thevideo record request includes recording a video of an active video chatsession between the first device and a second device.

The method, in a further implementation, includes receiving a bookmarkidentifying one or more portions of the video to be transcoded andtranscoding the one or more portions of the video that are bookmarkedwithout transcoding other portions of the video. Further to thisimplementation, the method includes aggregating the one or more portionsof the video into a single file.

Referring initially to FIG. 1, illustrated is an example non-limitingsystem 100 that provides streaming video in a format that is availablefor immediate download, according to an embodiment. Generally, when arequest to record a streaming video (e.g., a remote hosting session orlive video chat session) is received, in order for the video to bepublished in a format suitable for download, the video has to betranscoded. In some cases, the transcoding of the video, after therequest to record the video is received, might be the second time thatthe video has been transcoded. Transcoding is a directdigital-to-digital data conversion from one type of encoding to anothertype of encoding. If a target device does not support the format of thevideo being downloaded, the video is transcoded to a format that issupported by the target device. Transcoding of the video a second timecan be time consuming, which can result in user dissatisfaction,perceived negative issues associated with the source of the video, thetarget device, and so forth. Thus, according to an embodiment, system100 can be utilized to transcode the video at substantially the sametime as the video is being streamed (e.g., to a host device) so that thevideo can be available for immediate download at the target device.

Various embodiments of the systems, apparatuses, and/or processesexplained in this disclosure can constitute machine-executablecomponents embodied within one or more machines, such as, for example,embodied in one or more computer readable mediums (or media) associatedwith one or more machines. Such component(s), when executed by the oneor more machines (e.g., computer(s), computing device(s), virtualmachine(s), and so on) can cause the machine(s) to perform theoperations described.

System 100 can be included, at least partially, on a user device 102.The user device 102 can be for example, a mobile phone, a desktopcomputer, a tablet computer, a laptop computer, a gaming device, andother types of communication devices. User device 102 can include amemory 104 that stores computer executable components and instructions.User device 102 can also include a processor 106 that executes thecomputer executable components stored in the memory 104. It should benoted that although one or more computer executable components may bedescribed herein and illustrated as components separate from memory 104,in accordance with various embodiments, the one or more computerexecutable components could be stored in the memory 104.

In an embodiment, user device 102 includes a communication component 108that receives a video record request 110. The video record request 110can be received based on a manual input from a user. For example, aninformation technology (IT) help technician may be running a remotehosting session to show a user how to perform a particular task on theuser's laptop. This may be a task that the IT technician has had to showother users multiple times before. The IT technician and user may agree,at a certain point in the active remote hosting session, to record partsof the session in a video for upload as a help video. The IT technicianor the user may select a button on the user's laptop to convey arecording request and initiate video capture of the remote hostingsession open between the user's laptop and the technician's computer.Alternatively, the technician may select a button on the technician'scomputer and initiate video capture of the remote hosting session openbetween the technician's computer and the user's laptop. Accordingly, inthis example, the user device 102 can be the user's laptop or thetechnician's computer.

As another example, a college student might be listening to aprofessor's lecture and would like to record at least a portion of thelecture. Thus, the student can indicate that recording should begin by,for example, pressing a button (e.g., a physical button) on the userdevice 102, selecting a button (or other visual means) on a userinterface display of the user device 102, through voice activation, orthrough other manners of conveying a recording request. Thus, althoughnot illustrated, the user device 102 can include one or more cameras andone or more speakers, as well as other components that can be utilizedto capture the event.

In some embodiments, the video record request 110 can be generatedautomatically based on defined criteria. In an example, the video recordrequest 110 can be preprogrammed wherein the recording begins on acertain day and time (e.g., May 13 at 7:00 p.m., every Saturday at 10:30p.m., and so forth) in order to capture an event that occurs (or isexpected to occur) at the indicated day/time. Further to this example,the duration of the recording can be predetermined (e.g., 30 minutes,one hour, and so on) or the recoding can continue until an instructionis received to stop the recording (e.g., a manual input from the user).

In some embodiments, the recording can stop based on an incidentoccurring, such as movement of the user device (intentional orunintentional), which can be detected through a gyroscope,accelerometer, Global Positioning System (GPS), or other means ofdetecting movement of the user device 102. Additionally oralternatively, the recording can stop based on usage of the user device102 to perform another function (e.g., answer an incoming communication,initiate an outgoing communication, opening of a browser, and so forth).

In accordance with some embodiments, the recording can start based ondetection of movement, detection of a heat source (e.g., infrared), orthrough other sensing means. For example, a person might wish to recordwildlife in their backyard and upload the video for their friends toview. Thus, the person might install trail cameras that detect movementor heat (e.g., of a deer, coyote, bear, or other animal) as the animalpasses through an area that can be captured by the trail camera. Whenthe detection occurs, the device (e.g., trail camera) can beginautomatic recording for a defined length of time (e.g., two minutes,five minutes, and so on). After (or at substantially the same time as)recording of the video by the camera, the video can be uploaded to ahost device (e.g., one or more remote computers). The video is uploadedin such a manner that the video is available for immediate download(e.g., by accessing a website, by sending the video to a target devicethrough electronic means, such as in an email, and so forth).

As a result of the indication that recording should begin (e.g., videorecord request 110), the communication component 108 sends a notice to acapture component 112 that records a video 114 (and related audiocontent) of an event 116 (e.g., a remote hosting session, a video chat,a classroom lecture, deer movement in the woods, and so forth).According to some embodiments, at substantially the same time as theevent 116 is being recorded by the capture component 112, the video 114can be viewed on the user device 102 (e.g., though a display or userinterface component). The video 114 can be any duration such as, forexample, 22 seconds, 3 minutes, 46 minutes, 2 hours, and so forth.

Further, a transfer component 118 can stream the video 114 to a contenthosting device (e.g., a host device 120), wherein others (illustrated astarget devices 122) can access the video 114 though interaction with thecontent hosting device. For example, the host device 120 can provide awebsite or other location that allows others to access videos stored on(or accessible by) the host device 120 (or multiple host devices).

In order for the video 114 to be available for immediate download, userdevice 102 can include a conversion component 124 that can transcode thevideo 114 at substantially the same time as the video 114 is beingstreamed to a display device (e.g., to the user device's display deviceor to the technician's laptop in the case of the remote hostingsession). For example, conversion component 124 can perform a two-stepprocess that involves decoding the video to an intermediate uncompressedformat and then encoding the video into a target format. However, othermanners of transcoding the video can be employed by conversion component124.

The host device 120 can retain (e.g., in memory) the video 114 in thetranscoded format such that when a request for the video is receivedfrom one or more target devices 122, the video is available forimmediate download to those target devices 122. The download can beginimmediately since the video has already been transcoded and, therefore,a subsequent transcoding process is not needed before the video can bedownloaded to the one or more target devices 122.

FIG. 2 illustrates an example non-limiting system 200 that provides oneor more portions of a video that are available for immediate download,according to an embodiment. The system 200 can include an annotationcomponent 202 that bookmarks at least a portion of the video. Thebookmark (sometimes referred to herein as a tag or a marker) identifiesat least a portion of the video that is to be transcoded by conversioncomponent 124. The portions of the video that are not bookmarked byannotation component 202 are not transcoded by conversion component 124.Thus, only the bookmarked portion(s) of the video are made available forimmediate download at the target device(s) 122.

In accordance with some embodiments, annotation component 202 can tagthe one or more portions of the video with markers that indicate whereto start and stop the transcoding of the video at about the same time asthe video is being streamed. Thus, a single video can have any number ofstart (transcoding) markers and stop (transcoding) markers, which is aresult of how many portions of the video are to be transcoded.

For example, capture component 112 can be recording a lecture that has aduration of three hours. A student in the lecture hall can selectivelyidentify the portions that should be transcoded so that only interesting(or relevant) portions of the lecture are available for immediatedownload. In such a manner, the three hours lecture can be condensed andthe condensed version can be made available for immediate download tothe target device(s) 122. In some embodiments, the entire (three hours)lecture remains available (e.g., at the user device 102, at the hostdevice 120), however, only the identified portions are available forimmediate download, since those are the portions that have beentranscoded.

In accordance with some embodiments, the indication of the portions ofthe video that should be transcoded can be automatically inferred bysystem 200 based upon various parameters including user preferences orbased on other parameters, such as keywords, phrases, identification ofone or more people speaking (e.g., through voice recognition, throughphysical feature recognition or other biometrics) and so forth. Forexample, if there is a panel of six speakers at a presentation, theannotation component 202 can be configured to bookmark when each speakerbegins and ends their presentation.

In accordance with some embodiments, the annotation component 202includes an indicator module 204 that provides identifying informationassociated with each portion of the video that is bookmarked byannotation component 202. The indicator module 204 can distinguish afirst portion of the video from a second portion (or other portions) ofthe video. The first portion and the second portion (or subsequentportions) can be contiguous portions or noncontiguous portions of thevideo. Continuing the above example, indicator module 204 can includethe speaker's name and/or the subject matter of the material beingpresented. The identifying information can be utilized to jump torelevant portions of the video (e.g., skip over speakers or content thatis not of interest to the viewer).

Additionally or alternatively, system 200 can include a merge component206 that can aggregate the one or more portions into a single file. Forexample, a first portion, a second portion, and a third portion (orsubsequent portions) of the video can be tagged by annotation component202. Each portion can have the same duration or a different duration.Further, each portion can have the same or different identifyinginformation. In the case where two or more portions are not contiguous,merge component 206 can stitch each portion together (e.g., the secondportion begins at about the same time the first portion stops, the thirdportion begins at about the same time that the second portion stops, andso forth). The portions can be stitched together in such a manner thatmarkers, provided by indicator module 204, that correspond to respectivesections can allow a viewer to identify each portion of the single file.

FIG. 3 illustrates an example non-limiting system 300 that can convey avideo in a format that is ready for immediate download at a targetdevice, according to an embodiment. System 300 can be included, at leastpartially, on a host device 302. Host device 302 can include a memory304 that stores computer executable components and instructions. Hostdevice 302 can also include a processor 306 that executes the computerexecutable instructions stored in the memory 304. It should be notedthat although one or more computer readable components may be describedherein and illustrated as components separate from memory 304, inaccordance with various embodiments, the one or more computer executablecomponents could be stored in the memory 304.

The host device 302 can include a receiver component 308 that canreceive a video request 310 from a target device 312. In accordance withsome embodiments, similar video requests (e.g., for the same video) arereceived from two or more target devices. In other embodiments,different video requests (e.g., for different videos) are received fromone or more target devices.

At about the same time as the video request 310 is received, anauthorization component 314 determines whether the target device 312that submitted the video request 310 can have access to the requestedvideo. The ability to access the video can be determined by theauthorization component 314 based on an identification of the targetdevice. For example, the video can be received from a client device(e.g., user device 102 of FIGS. 1 and 2). Information related to thedevices (e.g., target device 312) that can access the video content canbe associated with the received video. For example, a video mightpertain to a camping trip and the person that submitted the video mightonly want the video to be viewed by friends or users tagged in thevideo. Thus, the video is submitted with information as to theidentification of friends or users that can view the video.Identification of the target device can be performed based oninformation that is broadcast from the target device. If the targetdevice is not authorized to view the video, an error message can beconveyed to the user of the target device (e.g., through a promptrendered on the target device).

If the authorization component 314 determines that the target device 312can access the video, a transmit component 316 streams the video 318 tothe target device 312. In one implementation, at about the same time asthe video 318 is being streamed to the target device 312, atransformation component 320 transcodes the video 318. For example, thevideo might not have been transcoded at substantially the same time as(or before) the video was conveyed to host device 302 (as discussed withreference to FIGS. 1 and 2). Thus, the video should be transcoded beforethe video is conveyed to the target device. This can save time and otherresources on the target device because the video does not need to betranscoded at the target device (e.g., is available for immediatedownload).

FIG. 4 illustrates a system 400 that broadcasts video availabilityinformation, according to an embodiment. The video availabilityinformation can provide information about the video to an individual (orto one or more sets of individuals) that might be interested in thevideo. System 400 can include a broadcast component 402 that advertisesavailability of downloadable content to a set of individuals (e.g., to aset of target devices 312). In an embodiment, broadcast component 402can selectively convey information to one or more individuals (or setsof individuals) notifying those individuals (e.g., through respectiveuser devices) that a download is available. In order to convey theinformation to the individuals, system 400 can include a userrecognition component 404 that identifies the individuals based oninformation received with the video (e.g., from a user device 102). Theuser recognition component 404 can retain the listing of individuals ina database or other retrievable format.

For example, the advertisement can be a selective advertisement, whereinthe set of individuals are selected as a function of at least oneconfigurable parameter. The configurable parameter(s) can include alisting of individuals that can access the video and such access can belimited by the author of the video (e.g., via a user device 102). Thenotifications can be conveyed to identified individuals (e.g., friends,a study group, and so forth), to a larger group of individuals (e.g.,all students at the college), or to the public wherein anyone can gainaccess to the video as identified by, for example, the uploading user.

According to another embodiment, broadcast component 402 can conveyinformation to all devices. For example, the advertisement can be apublic advertisement and the set of individuals can represent alldevices capable of receiving the advertisement.

FIG. 5 illustrates an example, non-limiting system 500 for enhancing avideo that is available for immediate download, according to anembodiment. System 500 can facilitate videoconferencing (sometimesreferred to as video chats), wherein individuals can communicate throughnearly simultaneous two-way video and audio transmissions. Each user cancapture the video chat from their viewpoints (e.g., through respectiveuser devices). For example, respective users of a first user device 502and a second user device 504 can be involved in a video chat. The firstuser device 502 can record what is being displayed on the device and thecorresponding audio. In a similar manner, the second user device 504 canrecord what is being displayed on the device and the correspondingaudio. The video chat captured by each user device can be conveyed tothe host device 302.

The receiver component 308 receives a first video 506 from the firstuser device 502 and a second video 508 from the second user device 504.The first video 506 and the second video 508 can represent alternativeviews of a single event (e.g., of the same video conference call). Insome embodiments, the first video and/or the second video are transcodedat substantially the same time the videos are conveyed to the hostdevice 302. However, in accordance with some embodiments, one or more ofthe videos are not transcoded while being streamed to the host device302.

Host device 302 includes a delta component 510 that identifiesdifferences between the first video 506 and the second video 508. Forexample, the differences can relate to the granularity of a document orscreenshot presented in the videos, wherein the granularity of the firstvideo 506 is better than the granularity of the second video 508 in thisexample. In another example, the audio captured by the first user device502 might be distorted (e.g., due to background noise) during a segmentof the first video 506. However, the same segment of the audio capturedby the second user device 504 might not contain the background noise,wherein this difference is identified by the delta component 510.

Also included in host device 302 of FIG. 5 is an enhancement component512 that creates a third video as a result of the identifieddifferences. The third video 512 can be an enhanced version of acombination of the first video 506 and the second video 508. Continuingthe above examples, the third video 512 can include the documentrendered on the first video and the segment of the audio as captured bythe second user device (e.g., discarding the document from the secondvideo and the audio segment captured by the first user device).

The third video 514 can be available for downloading to various targetdevices 312 at substantially the same time as the third video 514 istranscoded, as discussed herein. Thus, video chats can be recorded insuch a manner that the downloaded version of the video chat (e.g., thirdvideo) has a better quality than the information that is displayed onthe devices rendering the individual videos during the video chat (e.g.,user device, cell phone, and so on).

In some embodiments, alternative views of the video chat can be madeavailable in the downloaded version. FIG. 6 illustrates an example,non-limiting system 600 that provides alternative views of a video in aformat that is ready for immediate download, according to an embodiment.

Similar to the above, the receiver component 308 receives a first video506 from a first user device 502 and a second video 508 from a seconduser device 504, wherein the first video 506 and the second video 508capture alternative views of a single event (e.g., a video chat or aremote hosting session). In one implementation, enhancement component512 creates a third video 514 by combining the first video 506 and thesecond video 508 in a split-screen format (e.g., side-by-side,top-to-bottom). For example, frames of the first video 506 can be on aleft side of the third video's frames and frames of the second video 508can be on a right side of the third video's frames. An output component602 can output the third video 514, providing the split-screen format.In one implementation, the output component 602 renders the alternativeviews on a display of the target device(s) 312 in a split-screen format,without a third video being generated by the host device. For example, afirst video can be displayed on a top portion of the display and thesecond video can be displayed on a bottom portion of the display. Inanother example, the first video is displayed on the right hand side ofthe display and the second video is displayed on a left hand side of thedisplay.

Also included is a synchronization component 604 that harmonizes thealternative views. The alternative views can be harmonized by thesynchronization component 604 based on audio tracks associated with eachof the first video 506 and the second video 508. In another example, theharmonization can be facilitated by the synchronization component 604based on the recognition of events that occur in each video (e.g.,detected movement, an event occurring, and so forth). The harmonizationallows for continuity between the multiple videos when viewed in thesplit-screen format.

FIG. 7 illustrates an example non-limiting method 700 for providingconcurrent transcoding of a streaming video, according to an embodiment.While, for purposes of simplicity of explanation, the methods are shownand described as a series of acts, the disclosed subject matter is notlimited by the order of acts, as some acts may occur in different ordersand/or concurrently with other acts from that shown and describedherein. For example, those skilled in the art will understand andappreciate that a method can alternatively be represented as a series ofinterrelated states or events, such as in a state diagram. Moreover, notall illustrated acts may be required to implement a method in accordancewith the disclosed subject matter. Additionally, it is to be appreciatedthat the methods disclosed in this detailed description are capable ofbeing stored on an article of manufacture to facilitate transporting andtransferring such methodologies to computers or other computing devices.

Method 700 starts, at 702, when a video record request is received(e.g., using a communication component 108). The video record requestcan be received from a user device, for example. At 704, a video iscaptured (e.g., using a capture component 112). The video can be of aremote hosting session or a video chat (e.g., an active video chat), forexample. The video can be of an event indicated by a video recordrequest.

At 706, the video is streamed to a host device (e.g., using a transfercomponent 118). The video is streamed to the host device in order forthe video to be readily accessible by target devices (or by the userdevice that captured the video). In one example, users of the targetdevices might not have been present at the event captured in the video(e.g., the appearance of a deer on a trail); however, there is a desirefor those users to have access to the video.

At least a portion of the video is transcoded at 708 (e.g., using aconversion component 124). The video can be transcoded at substantiallythe same time as the video is streamed to the host device. The almostsimultaneous streaming and transcoding of the video allows the video tobe available for immediate download at one or more target devices. Forexample, in one example, a remote hosting session is open between afirst device and an associated second device. The remote hosting sessionprovides a video feed of the second device's screen to the first device.A user of the first or second device can trigger recording of the activeremote hosting session or a part thereof. As the recording is occurring,the recording is streamed to a content hosting device and substantiallysimultaneously transcoded (e.g., by a computer coupled to the contenthost device) so as to make the recording available to one or more targetdevices relatively immediately. In another implementation, theappearance of a deer on a trail triggers video capture, transcoding ofthe video, and substantially simultaneous streaming of the transcodedvideo to a content host device for immediate download availability to atarget device (e.g., a mobile phone or tablet). The availability of thevideo can be transmitted to the target device, e.g., via a pushnotification to the target device.

In accordance with some embodiments, one or more portions of the videocan be bookmarked (e.g., using an annotation component 202). Thebookmark(s) can identify one or more portions of the video that are tobe transcoded. At 708, only the one or more portions of the video thatare bookmarked are transcoded (e.g., using the conversion component124). Thus, portions of the video that are not bookmarked are nottranscoded at substantially the same time as the video is streamed tothe host device. The bookmarking of the video can be utilized toidentify noncontiguous portions of the video and the method 700 caninclude aggregating the one or more portions of the video into a singlefile (e.g., using a merge component 206).

Method 700 can also include distinguishing a first portion of the one ormore portions from a second portion of the one or more portions (e.g.,using an indicator module 204). The first portion and the second portioncan be contiguous portions of the video or can be noncontiguous portionsof the video. For example, the portions can be distinguished based oninformation that identifies the contents of each portion.

FIG. 8 illustrates another example, non-limiting method 800 that canconvey a video in a format that is ready for immediate download at atarget device, according to an embodiment. Method 800 starts, at 802,when a request for a video is received from a target device (e.g., usinga receiver component 308). The request can be for a video that is storedin memory and/or a video that can be readily accessed. The request caninclude an identification of the video (e.g., name of the video,location of the video, and so forth).

At 804, identification of the target device is utilized to selectivelyallow access to the video (e.g., using an authorization component 314).For example, the identification of the target device can includedetermining an authorization level associated with the target device,wherein the authorization level is defined by an author of the video.

If the target device is authorized to access the video, at 806 the videois transcoded (e.g., using a transformation component 320) and thenstreamed, at 808, to the target device (e.g., using a transmit component316). The transcoding of the video before (or at substantially the sametime as) streaming of the video allows the video to be available forimmediate download at the target device (e.g., without a secondtranscoding at the target device). The transcoding can includetranscoding portions of the video that are tagged and the portions ofthe video that are tagged can be merged to create a single file. Theportions of the video that are tagged can be contiguous portions ornon-contiguous portions of the video.

In an embodiment, the method 800 includes advertising availability ofdownloadable content to a set of target devices (e.g., using a broadcastcomponent 402). The advertisement can be a public advertisement and theset of individuals can represent all devices capable of receiving theadvertisement. In accordance with some embodiments, the advertisement isa selective advertisement, wherein the set of individuals are selectedas a function of at least one configurable parameter.

In another embodiment, the method can include receiving a first videofrom a first user device and a second video from a second user device(e.g., using a receiver component 308). The first video and the secondvideo can represent alternative views of a single event (e.g., of avideo chat). Differences between the first video and the second videocan be identified (e.g., using a delta component 510) and a third videocan created as a result of the identified differences (e.g., using anenhancement component 512). The third video can be an enhanced versionof a combination of the first video and the second video.

In accordance with some embodiments, the alternative views can berendered in a split-screen format on the target device (e.g., using anoutput component 602). Further, the alternative views can be harmonized(e.g., using a synchronization component 604), wherein the renderingincludes displaying the alternative views in the split-screen formationso that the alternative views are harmonized.

With reference to FIG. 9, a suitable environment 900 for implementingvarious embodiments of the disclosed subject matter includes a computer902. The computer 902 includes a processing unit 904, a system memory906, a codec 905, and a system bus 908. The system bus 908 couplessystem components including, but not limited to, the system memory 906to the processing unit 904. The processing unit 904 can be any ofvarious available processors. Dual microprocessors and othermultiprocessor architectures also can be employed as the processing unit904.

The system bus 908 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, Industrial StandardArchitecture (ISA), Micro-Channel Architecture (MSA), Extended ISA(EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus(USB), Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), Firewire (IEEE 1394), and SmallComputer Systems Interface (SCSI).

The system memory 906 includes volatile memory 910 and non-volatilememory 912. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer902, such as during start-up, is stored in non-volatile memory 912. Inaddition, according to an embodiment, codec 905 may include at least oneof an encoder or decoder, wherein the at least one of an encoder ordecoder may consist of hardware, a combination of hardware and software,or software. Although, codec 905 is depicted as a separate component,codec 905 may be contained within non-volatile memory 912. By way ofillustration, and not limitation, non-volatile memory 912 can includeread only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable programmable ROM(EEPROM), or flash memory. Volatile memory 910 includes random accessmemory (RAM), which acts as external cache memory. According to variousembodiments, the volatile memory may store write operation retry logic(not shown in FIG. 9) and the like. By way of illustration and notlimitation, RAM is available in many forms such as static RAM (SRAM),dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM(DDR SDRAM), and enhanced SDRAM (ESDRAM.

Computer 902 may also include removable/non-removable,volatile/non-volatile computer storage medium. FIG. 9 illustrates, forexample, disk storage 914. Disk storage 914 includes, but is not limitedto, devices such as a magnetic disk drive, solid state disk (SSD) floppydisk drive, tape drive, Jaz drive, Zip drive, LS-70 drive, flash memorycard, or memory stick. In addition, disk storage 914 can include storagemedium separately or in combination with other storage medium including,but not limited to, an optical disk drive such as a compact disk ROMdevice (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive(CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). Tofacilitate connection of the disk storage devices 914 to the system bus908, a removable or non-removable interface can be used, such asinterface 916.

It is to be appreciated that FIG. 9 describes software that acts as anintermediary between users and the basic computer resources described inthe suitable operating environment 900. Such software includes anoperating system 918. Operating system 918, which can be stored on diskstorage 914, acts to control and allocate resources of the computer 902.Applications 920 take advantage of the management of resources byoperating system 918 through program modules 924, and program data 926,such as boot/shutdown transaction table and the like, stored either insystem memory 906 or on disk storage 914. It is to be appreciated thatthe disclosed embodiments can be implemented with various operatingsystems or combinations of operating systems.

A user enters commands or information into the computer 902 throughinput device(s) 928 (e.g., a user interface). Input devices 928 include,but are not limited to, a pointing device such as a mouse, trackball,stylus, touch pad, keyboard, microphone, joystick, game pad, satellitedish, scanner, TV tuner card, digital camera, digital video camera, webcamera, and the like. These and other input devices connect to theprocessing unit 904 through the system bus 908 via interface port(s)930. Interface port(s) 930 include, for example, a serial port, aparallel port, a game port, and a universal serial bus (USB). Outputdevice(s) 936 use some of the same type of ports as input device(s) 928.Thus, for example, a USB port may be used to provide input to computer902, and to output information from computer 902 to an output device936. Output adapter 934 is provided to illustrate that there are someoutput devices 936 such as monitors, speakers, and printers, among otheroutput devices 936, which require special adapters. The output adapters934 include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 936and the system bus 908. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 938.

Computer 902 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)938 (e.g., a family of devices). The remote computer(s) 938 can be apersonal computer, a server, a router, a network PC, a workstation, amicroprocessor based appliance, a peer device, a smart phone, a tablet,or other network node, and can includes many of the elements describedrelative to computer 902. For purposes of brevity, only a memory storagedevice 940 is illustrated with remote computer(s) 938. Remotecomputer(s) 938 is logically connected to computer 902 through a networkinterface 942 and then connected via communication connection(s) 944.Network interface 942 encompasses wire and/or wireless communicationnetworks such as local-area networks (LAN) and wide-area networks (WAN)and cellular networks. LAN technologies include Fiber Distributed DataInterface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet,Token Ring and the like. WAN technologies include, but are not limitedto, point-to-point links, circuit switching networks such as IntegratedServices Digital Networks (ISDN) and variations thereon, packetswitching networks, and Digital Subscriber Lines (DSL).

Communication connection(s) 944 refers to the hardware/software employedto connect the network interface 942 to the bus 908. While communicationconnection 944 is shown for illustrative clarity inside computer 902, itcan also be external to computer 902. The hardware/software necessaryfor connection to the network interface 942 includes, for exemplarypurposes only, internal and external technologies such as, modemsincluding regular telephone grade modems, cable modems and DSL modems,ISDN adapters, and wired and wireless Ethernet cards, hubs, and routers.

Referring now to FIG. 10, there is illustrated a schematic block diagramof a computing environment 1000 in accordance with the disclosedembodiments. The system 1000 includes one or more client(s) 1002 (e.g.,laptops, smart phones, PDAs, media players, computers, portableelectronic devices, tablets, and the like). The client(s) 1002 can behardware and/or software (e.g., threads, processes, computing devices).The system 1000 also includes one or more server(s) 1004. The server(s)1004 can also be hardware or hardware in combination with software(e.g., threads, processes, computing devices). The servers 1004 canhouse threads to perform transformations by employing aspects of thisdisclosure, for example. One possible communication between a client1002 and a server 1004 can be in the form of a data packet transmittedbetween two or more computer processes wherein the data packet mayinclude video data. The data packet can include metadata, such asassociated contextual information for example. The system 1000 includesa communication framework 1006 (e.g., a global communication networksuch as the Internet, or mobile network(s)) that can be employed tofacilitate communications between the client(s) 1002 and the server(s)1004.

Communications can be facilitated via a wired (including optical fiber)and/or wireless technology. The client(s) 1002 include or areoperatively connected to one or more client data store(s) 1008 that canbe employed to store information local to the client(s) 1002 (e.g.,associated contextual information). Similarly, the server(s) 1004operatively include or are operatively connected to one or more serverdata store(s) 1010 that can be employed to store information local tothe servers 1004.

The illustrated aspects of the disclosure may also be practiced indistributed computing environments where certain tasks are performed byremote processing devices that are linked through a communicationsnetwork. In a distributed computing environment, program modules can belocated in both local and remote memory storage devices.

Moreover, it is to be appreciated that various components described inthis description can include electrical circuit(s) that can includecomponents and circuitry elements of suitable value in order toimplement the embodiments of the subject disclosure. Furthermore, it canbe appreciated that many of the various components can be implemented onone or more integrated circuit (IC) chips. For example, in oneembodiment, a set of components can be implemented in a single IC chip.In other embodiments, one or more of respective components arefabricated or implemented on separate IC chips.

What has been described above includes examples of various embodiments.It is, of course, not possible to describe every conceivable combinationof components or methodologies for purposes of describing the one ormore aspects, but it is to be appreciated that many further combinationsand permutations of the various aspects are possible. Accordingly, thesubject disclosure is intended to embrace all such alterations,modifications, and variations. Moreover, the above description ofillustrated embodiments of the subject disclosure, including what isdescribed in the Abstract, is not intended to be exhaustive or to limitthe disclosed embodiments to the precise forms disclosed. While specificembodiments and examples are described in this disclosure forillustrative purposes, various modifications are possible that areconsidered within the scope of such embodiments and examples, as thoseskilled in the relevant art can recognize.

In particular and in regard to the various functions performed by theabove described components, devices, circuits, systems and the like, theterms used to describe such components are intended to correspond,unless otherwise indicated, to any component which performs thespecified function of the described component (e.g., a functionalequivalent), even though not structurally equivalent to the disclosedstructure, which performs the function in the disclosed illustratedexemplary aspects of the disclosed subject matter. In this regard, itwill also be recognized that the aspects include a system as well as acomputer-readable storage medium having computer-executable instructionsfor performing the acts and/or events of the various methods of theclaimed subject matter.

The aforementioned systems/circuits/modules have been described withrespect to interaction between several components/blocks. It can beappreciated that such systems/circuits and components/blocks can includethose components or specified sub-components, some of the specifiedcomponents or sub-components, and/or additional components, andaccording to various permutations and combinations of the foregoing.Sub-components can also be implemented as components communicativelycoupled to other components rather than included within parentcomponents (hierarchical). Additionally, it should be noted that one ormore components may be combined into a single component providingaggregate functionality or divided into several separate sub-components,and any one or more middle layers, such as a management layer, may beprovided to communicatively couple to such sub-components in order toprovide integrated functionality. Any components described in thisdisclosure may also interact with one or more other components notspecifically described in this disclosure but known by those of skill inthe art. Although the components described herein are primarilydescribed in connection with performing respective acts orfunctionalities, it is to be understood that in a non-active state thesecomponents can be configured to perform such acts or functionalities.

In addition, while a particular feature may have been disclosed withrespect to only one of several implementations, such feature may becombined with one or more other features of the other implementations asmay be desired and advantageous for any given or particular application.Furthermore, to the extent that the terms “includes,” “including,”“has,” “contains,” variants thereof, and other similar words are used ineither the detailed description or the claims, these terms are intendedto be inclusive in a manner similar to the term “comprising” as an opentransition word without precluding any additional or other elements.

As used in this application, the terms “component”, “module”, “system”,or the like are generally intended to refer to a computer-relatedentity, either hardware (e.g., a circuit), a combination of hardware andsoftware, software, or an entity related to an operational machine withone or more specific functionalities. For example, a component may be,but is not limited to being, a process running on a processor (e.g.,digital signal processor), a processor, an object, an executable, athread of execution, a program, and/or a computer. By way ofillustration, both an application running on a controller and thecontroller can be a component. One or more components may reside withina process and/or thread of execution and a component may be localized onone computer and/or distributed between two or more computers. Further,a “device” can come in the form of specially designed hardware;generalized hardware made specialized by the execution of softwarethereon that enables the hardware to perform specific functions;software stored on a computer readable storage medium; softwaretransmitted on a computer readable transmission medium; or a combinationthereof.

Moreover, the words “example” or “exemplary” are used in this disclosureto mean serving as an example, instance, or illustration. Any aspect ordesign described in this disclosure as “exemplary” is not necessarily tobe construed as preferred or advantageous over other aspects or designs.Rather, use of the words “example” or “exemplary” is intended to presentconcepts in a concrete fashion. As used in this application, the term“or” is intended to mean an inclusive “or” rather than an exclusive“or”. That is, unless specified otherwise, or clear from context, “Xemploys A or B” is intended to mean any of the natural inclusivepermutations. That is, if X employs A; X employs B; or X employs both Aand B, then “X employs A or B” is satisfied under any of the foregoinginstances. In addition, the articles “a” and “an” as used in thisapplication and the appended claims should generally be construed tomean “one or more” unless specified otherwise or clear from context tobe directed to a singular form.

Reference throughout this specification to “one implementation,” or “animplementation,” or “one embodiment,” or “an embodiment” means that aparticular feature, structure, or characteristic described in connectionwith the implementation or embodiment is included in at least oneimplementation or one embodiment. Thus, the appearances of the phrase“in one implementation,” or “in an implementation,” or “in oneembodiment,” or “in an embodiment” in various places throughout thisspecification can, but are not necessarily, referring to the sameimplementation or embodiment, depending on the circumstances.Furthermore, the particular features, structures, or characteristics maybe combined in any suitable manner in one or more implementations orembodiments.

Computing devices typically include a variety of media, which caninclude computer-readable storage media and/or communications media, inwhich these two terms are used in this description differently from oneanother as follows. Computer-readable storage media can be any availablestorage media that can be accessed by the computer, is typically of anon-transitory nature, and can include both volatile and nonvolatilemedia, removable and non-removable media. By way of example, and notlimitation, computer-readable storage media can be implemented inconnection with any method or technology for storage of information suchas computer-readable instructions, program modules, structured data, orunstructured data. Computer-readable storage media can include, but arenot limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disk (DVD) or other optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or other tangible and/or non-transitorymedia which can be used to store desired information. Computer-readablestorage media can be accessed by one or more local or remote computingdevices, for example, via access requests, queries, or other dataretrieval protocols, for a variety of operations with respect to theinformation stored by the medium.

On the other hand, communications media typically embodycomputer-readable instructions, data structures, program modules orother structured or unstructured data in a data signal that can betransitory such as a modulated data signal, for example, a carrier waveor other transport mechanism, and includes any information delivery ortransport media. The term “modulated data signal” or signals refers to asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in one or more signals. By way ofexample, and not limitation, communication media include wired media,such as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media.

In addition, while a particular feature of the disclosed aspects mayhave been disclosed with respect to only one of several implementations,such feature may be combined with one or more other features of theother implementations as may be desired and advantageous for any givenor particular application. Furthermore, to the extent that the terms“includes,” “including,” “has,” “contains,” variants thereof, and othersimilar words are used in either the detailed description or the claims,these terms are intended to be inclusive in a manner similar to the term“comprising” as an open transition word without precluding anyadditional or other elements.

What is claimed is:
 1. A device, comprising: a memory that storescomputer executable components; and a processor that executes thefollowing computer executable components stored in the memory: acommunication component for receiving a video record request; a capturecomponent for recording a video of a live event indicated by the videorecord request; a transfer component for streaming at least a portion ofthe video to a host device as the video is being recorded; an annotationcomponent for: identifying one or more portions of the video to betranscoded based on at least one of plurality of identifying parameters,wherein each identified portion of the video to be transcoded has thesame duration; and tagging each identified portion of the video to betranscoded with markers that indicate where to start and stop thetranscoding of the identified portion of the video; and a conversioncomponent for: transcoding only the identified one or more portions ofthe video into a format supported by a target device, the transcodingbeing concurrent to the streaming of the at least the portion of thevideo to the host device, wherein the target device is different fromthe host device, and only the transcoded portions of the video are fordownloading at the target device.
 2. The device of claim 1, wherein theplurality of identifying parameters include at least one of: user input,user preference, keywords and phrases describing content of the video,and identification of one or more human speakers in the video.
 3. Thedevice of claim 1, further comprising: a merge component for combiningone or more transcoded portions of the video into a single file, eachtranscoded portion in the single file being identified by at least onemarker indicating start of the transcoded portion.
 4. A device,comprising: a memory that stores computer executable components; and aprocessor that executes the following computer executable componentsstored in the memory: a receiver component for receiving a first videofrom a first user device and a second video from a second user device,wherein the first video and the second video represent alternative viewsof a common event; a delta component for identifying audio and visualdifferences between the first video and the second video; an enhancementcomponent for: synchronizing the first video and the second video basedon at least one of audio tracks associated with each of the first videoand the second video and recognition of events that occur in each of thefirst video and the second video; creating a third video based on theidentified differences and synchronization of the first video and thesecond video combining the synchronized first video and second videodisplayed in a split-screen format, wherein the third video is anenhanced version of a combination of the first video and the secondvideo, and wherein continuity is provided when reviewing thesynchronized first video and the second video displayed in thesplit-screen format; a communication component for streaming the thirdvideo to a target device in response to a request for a video related tothe event from the target device; and a transformation component fortranscoding the third video into a format supported by the target deviceconcurrently with the third video being streamed to the target device.5. The device of claim 4, wherein the event is a video chat and thefirst user device and the second user device are operated by differententities.
 6. The device of claim 4, wherein the enhancement componentcombines frames of the first video with an audio segment of the secondvideo temporally corresponding to the frames of the first video to formthe third video.
 7. The device of claim 6, wherein the frames of thefirst video are of higher visual quality than temporally correspondingframes of the second video.
 8. The device of claim 6, wherein the audiosegment of the second video is of higher audio quality than a temporallycorresponding audio segment of the first video.
 9. A method, comprising:receiving, by a system including a computer processor, a first videofrom a first user device and a second video from a second user device,wherein the first video and the second video represent alternative viewsof a common event; identifying, by the system, audio and visualdifferences between the first video and the second video; synchronizing,by the system, the first video and the second video based on at leastone of audio tracks associated with each of the first video and thesecond video and recognition of events that occur in each of the firstvideo and the second video; creating, by the system, a third video basedon the identified differences and synchronization of the first video andthe second video by combining the synchronized first video and secondvideo displayed in a split-screen format, wherein the third video is anenhanced version of a combination of the first video and the secondvideo, and wherein continuity is provided when reviewing thesynchronized first video and the second video displayed in thesplit-screen format; streaming, by the system, the third video to atarget device in response to a request for a video related to the eventfrom the target device; and transcoding the third video to a formatsupported by the target device concurrently with the third video isstreamed to the target device.
 10. The method of claim 9, wherein thethird video comprises frames of the first video with an audio segment ofthe second video temporally corresponding to the frames of the firstvideo.
 11. The method of claim 9, wherein the frames of the first videoare of higher visual quality than temporally corresponding frames of thesecond video.
 12. The method of claim 9, wherein the audio segment ofthe second video is of higher audio quality than a temporallycorresponding audio segment of the first video.
 13. A method,comprising: receiving, by a first device comprising a computerprocessor, a video record request; recording, by the first device, avideo of a live event in response to the video record request;streaming, by the first device to a host device, at least a portion ofthe video as the video is being recorded; and identifying one or moreportions of the video to be transcoded based on at least one ofplurality of identifying parameters, wherein each identified portion ofthe video to be transcoded has the same duration; tagging eachidentified portion of the video to be transcoded with markers thatindicate where to start and stop the transcoding of the identifiedportion of the video; and transcoding, by the first device, only theidentified one or more portions of the video into a format supported bya target device, the transcoding being concurrent to the streaming of atleast the portion of the video to the host device, wherein the targetdevice is different from the host device and only the transcodedportions of the video are for downloading at the target device.
 14. Themethod of claim 13, wherein the plurality of identifying parametersinclude at least one of: user input, user preference, keywords andphrases describing content of the video, and identification of one ormore human speakers in the video.
 15. The method of claim 13, furthercomprising combining one or more transcoded portions of the video into asingle file, each transcoded portion in the single file being identifiedby at least one marker indicating start of the transcoded portion.